//
//  gradientLayerView.h
//  gradientlayer
//
//  Created by zmj27404 on 16/2/17.
//  Copyright © 2016年 zmj27404. All rights reserved.
//

#import <UIKit/UIKit.h>

@class gradientLayerView;
@protocol gradientLayerViewDelegate <NSObject>

- (void)gradientLayerViewDidDraw:(gradientLayerView *)gradientView;

@end

typedef NS_ENUM(NSInteger, backLineType) {
    backLineType_Real,  //背景实线
    backLineType_Dash   //背景虚线
};

typedef NS_ENUM(NSInteger, LayerType) {
    LayerType_RealTime, //实时图(分时图),新订单界面
    LayerType_RealTimeHold, //实时图(分时图),在手订单界面
    LayerType_KLine     //K线图
};

//分时图
IB_DESIGNABLE
@interface gradientLayerView : UIView
/**
 *  @author zmj, 16-02-17 21:02:51
 *
 *  返回gradientLayerView实例对象
 *
 *  @param frame  UIView的尺寸
 *  @param points UIView中线的点位
 *  @param count  X轴count数量
 *
 *  @return 包含点线的gradientLayerView的实例对象
 */
- (instancetype)initWithFrame:(CGRect)frame andPoints:(NSArray *)points maxCount:(NSUInteger)count layerType:(LayerType)type;
/**
 *  @author zmj, 16-02-17 21:02:45
 *
 *  添加新的点
 *
 *  @param point   点的数据
 *  @param newFlag 是否为新数据，YES就添加，NO就替换最后一条数据
 */
- (void)addPoint:(NSNumber *)point isNew:(BOOL)newFlag;
/** 是否改变数据源,(产品来源),YES没有,NO有改变,需要重新绘制 */
@property (nonatomic, assign) BOOL DontChangeDatas;
/** 数据组,用于设置数据源 */
- (void)setDataPoints:(NSArray *)dataPoints;
/** 代理对象 */
@property (nonatomic, assign) IBInspectable id<gradientLayerViewDelegate> delegate;
/** 图层类型,默认分时图 */
@property (nonatomic, assign) LayerType layerType;
/** 渐变颜色数组 */
@property (nonatomic, retain) NSArray *gradientColor;
/** 设置显示的最大数量 */
@property (nonatomic, assign) NSUInteger maxCount;
/** 显示的小数点位 */
@property (nonatomic, assign) IBInspectable NSUInteger scale;
/** 在手订单界面中的目标价格,只在layerType为LayerType_RealTimeHold时起作用 */
@property (nonatomic, assign) IBInspectable CGFloat selectedNumber;

#pragma mark - 布局属性
/** 分时线条颜色,默认黄色 */
@property (nonatomic, strong) IBInspectable UIColor *lineColor;
/** 分时线条宽度,默认1.0f */
@property (nonatomic, assign) IBInspectable CGFloat lineWidth;
/** 中间价格线条的颜色， 默认为灰色 */
@property (nonatomic, strong) IBInspectable UIColor *midLineColor;
/** 中间间隔线条的宽度， 默认为1.5f */
@property (nonatomic, assign) IBInspectable CGFloat midLineWidth;
/** 
 图形核心所在的区域跟边界的差距,默认(5,5,5,30),30>5,
 文字放在右边，(30,5,5,5)文字放在左边
 */
@property (nonatomic, assign) IBInspectable UIEdgeInsets edgeInsets;
/** 底部水平线的颜色， 默认(70,70,70) */
@property (nonatomic, strong) IBInspectable UIColor *borderHorizonlColor;
/** 底部水平线的宽度， 默认2 */
@property (nonatomic, assign) IBInspectable CGFloat borderHorizonlLineWidth;
/** 底部垂直线的颜色, 默认(33,33,33) */
@property (nonatomic, strong) IBInspectable UIColor *borderVerticalColor;
/** 底部垂直线的宽度, 默认为1 */
@property (nonatomic, assign) IBInspectable CGFloat borderVerticalLineWidth;
/** 底部背景颜色, 默认(5,5,5) */
@property (nonatomic, strong) IBInspectable UIColor *borderBackgroundColor;
/** 文字的大小，默认13 */
@property (nonatomic, assign) IBInspectable CGFloat labFontSize;
/** 文字的颜色， 默认白色 */
@property (nonatomic, strong) IBInspectable UIColor *labForegroundColor;
/** 背景线条类型 */
@property (nonatomic, assign) IBInspectable backLineType backgroundLineType;
/** 显示视图 */
- (void)show;
@end
